var a = 1;

function foo() {
  var b = 1;
  return function (c) {
    console.log('==>', c + b++);
  };
}

var f = foo();
f(5);
f(10);

/**
 * 01 闭包：是一种机制
 *   保护：当前上下文中的变量与其他上下文中的变量互不干扰
 *   保存：当前上下文中的数据被当前上下文以外的上下文中的变量所引用，这个数据就保存下来了
 * 
 * 02 闭包：
 *  函数调用形成了一个全新的私有上下文，在函数调用后，当前上下文不被释放就是闭包(临时不被释放)
 */
